package com.fand.platform.configuration.service;

import java.util.List;
import java.util.Map;

import com.fand.cache.support.CacheEvictSupport;
import com.fand.dto.PaginationDto;
import com.fand.platform.configuration.dto.DomainNaDto;
import com.fand.platform.configuration.dto.SiteDto;

/**
 * 站服务
 * 
 * @author yaoHT
 */
public interface SiteService extends CacheEvictSupport {
	String BEAN_ID = "com.fand.platform.configuration.service.SiteService";

	String CACHE_NAME = SiteService.BEAN_ID + "Cache";

	/**
	 * 保存:站
	 * 
	 * @param saveSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	SiteDto saveSiteByIdOrCodeForSite(SiteDto saveSite);

	/**
	 * 保存:站
	 * 
	 * @param saveSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	SiteDto saveSiteBy2ForSite(SiteDto saveSite);

	/**
	 * 删除:站
	 * 
	 * @param deleteSite
	 *            站对象
	 * 
	 * @return 影响行数
	 */
	int deleteSiteBy1(SiteDto deleteSite);

	/**
	 * 删除:站
	 * 
	 * @param deleteSite
	 *            站对象
	 * 
	 * @return 影响行数
	 */
	int deleteSiteByIds(SiteDto deleteSite);

	/**
	 * 设置:站
	 * 
	 * @param setSite
	 *            站对象
	 * 
	 * @return 影响行数
	 */
	int setSiteBy1(SiteDto setSite);

	/**
	 * 设置:站
	 * 
	 * @param setSite
	 *            站对象
	 * 
	 * @return 影响行数
	 */
	int setSiteBy2(SiteDto setSite);

	/**
	 * 读取:站
	 * 
	 * @param readSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	Integer readSiteByCodeNqIdForInteger(SiteDto readSite);

	/**
	 * 读取:站
	 * 
	 * @param readSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	Integer readSiteBy2ForInteger(SiteDto readSite);

	/**
	 * 读取:站
	 * 
	 * @param readListSite
	 *            站对象
	 * 
	 * @return 站对象集合
	 */
	List<Integer> readListSiteBy1(SiteDto readSite);

	/**
	 * 读取:站
	 * 
	 * @param readListSite
	 *            站对象
	 * 
	 * @return 站对象集合
	 */
	List<Integer> readListSiteBy2(SiteDto readSite);

	/**
	 * 查询:站
	 * 
	 * @param getSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	SiteDto getSiteBy1(SiteDto getSite);

	/**
	 * 查询:站
	 * 
	 * @param getSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	SiteDto getSiteById(SiteDto getSite);

	/**
	 * 查询:站
	 * 
	 * @param domainUrl
	 *            域名路径
	 * 
	 * @return 站对象
	 */
	SiteDto getSiteByDomainUrl(String domainUrl);

	/**
	 * 查询:站
	 * 
	 * @param getSite
	 *            站对象
	 * 
	 * @return 站对象
	 */
	SiteDto getSiteByDefault();

	/**
	 * 查询:站
	 * 
	 * @param findSite
	 *            站对象
	 * 
	 * @return 站对象集合
	 */
	List<SiteDto> findSiteBy1(SiteDto findSite);

	/**
	 * 查询:站
	 * 
	 * @return 站对象集合
	 */
	List<SiteDto> findSite();

	/**
	 * 分页:站
	 * 
	 * @param paginationSite
	 *            站对象
	 * 
	 * @return 站分页对象
	 */
	PaginationDto<SiteDto> paginationSiteBy1ForSiteList(SiteDto paginationSite);

	/**
	 * 分页
	 * 
	 * @param paginationSite
	 *            站对象
	 * 
	 * @return 站分页对象
	 */
	PaginationDto<Map<String, Object>> paginationSiteBy1ForMapList(SiteDto paginationSite);

	/**
	 * 保存:域名
	 * 
	 * @param saveDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象
	 */
	DomainNaDto saveDomainNaByIdOrCodeForDomainNa(DomainNaDto saveDomainNa);

	/**
	 * 保存:域名
	 * 
	 * @param saveDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象
	 */
	DomainNaDto saveDomainNaBy2ForDomainNa(DomainNaDto saveDomainNa);

	/**
	 * 删除:域名
	 * 
	 * @param deleteDomainNa
	 *            域名对象
	 * 
	 * @return 影响行数
	 */
	int deleteDomainNaBy1(DomainNaDto deleteDomainNa);

	/**
	 * 删除:域名
	 * 
	 * @param deleteDomainNa
	 *            域名对象
	 * 
	 * @return 影响行数
	 */
	int deleteDomainNaByIds(DomainNaDto deleteDomainNa);

	/**
	 * 设置:域名
	 * 
	 * @param setDomainNa
	 *            域名对象
	 * 
	 * @return 影响行数
	 */
	int setDomainNaBy1(DomainNaDto setDomainNa);

	/**
	 * 设置:域名
	 * 
	 * @param setDomainNa
	 *            域名对象
	 * 
	 * @return 影响行数
	 */
	int setDomainNaBy2(DomainNaDto setDomainNa);

	/**
	 * 读取:域名
	 * 
	 * @param readDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象
	 */
	Integer readDomainNaByCodeNqIdForInteger(DomainNaDto readDomainNa);

	/**
	 * 读取:域名
	 * 
	 * @param readDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象
	 */
	Integer readDomainNaBy2ForInteger(DomainNaDto readDomainNa);

	/**
	 * 读取:域名
	 * 
	 * @param readListDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象集合
	 */
	List<Integer> readListDomainNaBy1(DomainNaDto readDomainNa);

	/**
	 * 读取:域名
	 * 
	 * @param readListDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象集合
	 */
	List<Integer> readListDomainNaBy2(DomainNaDto readDomainNa);

	/**
	 * 查询:域名
	 * 
	 * @param getDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象
	 */
	DomainNaDto getDomainNaBy1(DomainNaDto getDomainNa);

	/**
	 * 查询:域名
	 * 
	 * @param getDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象
	 */
	DomainNaDto getDomainNaById(DomainNaDto getDomainNa);

	/**
	 * 查询:域名
	 * 
	 * @param findDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象集合
	 */
	List<DomainNaDto> findDomainNaBy1(DomainNaDto findDomainNa);

	/**
	 * 查询:域名
	 * 
	 * @param findDomainNa
	 *            域名对象
	 * 
	 * @return 域名对象集合
	 */
	List<DomainNaDto> findDomainNaBy2(DomainNaDto findDomainNa);

	/**
	 * 分页:域名
	 * 
	 * @param paginationDomainNa
	 *            域名对象
	 * 
	 * @return 域名分页对象
	 */
	PaginationDto<DomainNaDto> paginationDomainNaBy1ForDomainNaList(DomainNaDto paginationDomainNa);

	/**
	 * 分页
	 * 
	 * @param paginationDomainNa
	 *            域名对象
	 * 
	 * @return 域名分页对象
	 */
	PaginationDto<Map<String, Object>> paginationDomainNaBy1ForMapList(DomainNaDto paginationDomainNa);
}